The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Video is typically defined by a sequence of image frames that are displayed at a fixed frequency generally referred to as a video frame rate. It often becomes necessary to convert a video stream from one frame rate to another frame rate in order to provide compatible frame sequences for different types of display technologies, such as different types of television or video displays.
Motion compensation may be used when converting from a given frame rate to a higher frame rate in order to synthesize the additional video frames required by the higher frame rate. As an example, a 24 frames/second video stream may be converted to a 120 frames/second video stream by synthesizing new, intermediate frames to be inserted between existing frames. For each pair of temporally adjacent frames of the original stream, generally referred to as reference frames or anchor frames, an additional four intermediate frames are synthesized and inserted between the original anchor frames.
In certain systems, motion compensation may be performed by a compensation engine in response to motion vectors that have been received or calculated for individual pixels. Each motion vector specifies the movement of a particular pixel between one anchor frame and an adjacent anchor frame in terms of direction and displacement. Intermediate frames may then be generated by appropriately interpolating the motion vectors and displacing pixels from one of the anchor frames in accordance with the interpolated motion vectors.
The anchor frames are typically stored in system memory such as DRAM (dynamic random-access memory) or DDR SDRAM (double data rate synchronous dynamic random-access memory). In order to increase the speed and efficiency of motion compensation and intermediate frame generation, certain portions of current anchor frames may be buffered to provide high-speed access to the data of the anchor frames. For example, an access buffer may be configured to store a range of pixel lines or rows that are nearby the pixel line that is currently being processed by the compensation engine under the assumption that the motion of a pixel from one frame to the next will usually be within some practical vertical limit. With increasing resolutions for various types of displays, however, the sizes of line buffers have become quite large, and now often require significant semiconductor die area.